package gptma.bo.services.project;

import gptma.bo.model.employee.Employee;
import gptma.bo.model.project.Project;
import gptma.bo.model.request.ClientRequest;
import gptma.bo.model.task.Task;

import java.util.Date;
import java.util.List;

import javax.ejb.Local;

@Local
public interface ProjectServices {

	float[] getProjectCharge(Project project);

	List<Task> findAssociatedTasks(Project project);

	List<String> completeProjectName(String partialName);

	List<ClientRequest> findRequests(Project project);

	int findRequestCount(Project project);
	
	Project findById(Long id);

	Project findByName(String name);

	List<Project> findProjectsByName(String name);

	List<Project> findAll();

	List<Task> findDirectlyAttachedTasks(Project project);

	void generateReporting(Employee projectManager, Date startDate, Date endDate);

	void saveProject(Project project);
}
